home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm19.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  51.5 KB  |  1,904 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. T0* r355at(T355* C,T0* a1){
  10. T0* R=NULL;
  11. T0* _to_key=NULL;
  12. _to_key=X776to_key(a1);
  13. /*IF*/if (r199has(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),_to_key)) {
  14. R=r199at(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),_to_key);
  15. }
  16. /*FI*/return R;
  17. }
  18. int r355gt(T0* a1,T0* a2){
  19. int R=0;
  20. T0* _bcn2=NULL;
  21. T0* _bcn1=NULL;
  22. T0* _bf2=NULL;
  23. T0* _bf1=NULL;
  24. T0* _bc2=NULL;
  25. T0* _bc1=NULL;
  26. _bf1=(((T820*)((T820*)a1)))->_base_feature/*32*/;
  27. _bf2=(((T820*)((T820*)a2)))->_base_feature/*32*/;
  28. _bc1=/*X359*/((T0*)(((T398*)((T398*)_bf1)))->_base_class/*4*/);
  29. _bc2=/*X359*/((T0*)(((T398*)((T398*)_bf2)))->_base_class/*4*/);
  30. _bcn1=(((T605*)((T605*)_bc1)))->_base_class_name/*24*/;
  31. _bcn2=(((T605*)((T605*)_bc2)))->_base_class_name/*24*/;
  32. /*IF*/if (((((T451*)((T451*)_bcn1)))->_to_string/*0*/)==((void*)((((T451*)((T451*)_bcn2)))->_to_string/*0*/))) {
  33. R=r627before(((T627*)(X359start_position(_bf1))),X359start_position(_bf2));
  34. }
  35.  else if (r451is_subclass_of(((T451*)_bcn2),_bcn1)) {
  36. R=1;
  37. }
  38.  else if (r451is_subclass_of(((T451*)_bcn1),_bcn2)) {
  39. }
  40.  else if (((((T605*)((T605*)_bc1)))->_parent_list/*40*/)==((void*)(NULL))) {
  41. /*IF*/if (((((T605*)((T605*)_bc2)))->_parent_list/*40*/)==((void*)(NULL))) {
  42. R=r7_px_60(((T7*)((((T451*)((T451*)_bcn1)))->_to_string/*0*/)),(((T451*)((T451*)_bcn2)))->_to_string/*0*/);
  43. }
  44. else {
  45. R=1;
  46. }
  47. /*FI*/}
  48.  else if (((((T605*)((T605*)_bc2)))->_parent_list/*40*/)==((void*)(NULL))) {
  49. }
  50. else {
  51. R=(/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)((((T605*)((T605*)_bc2)))->_parent_list/*40*/))))->_list/*12*/))))->_upper/*8*//*)*/)<(/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)((((T605*)((T605*)_bc1)))->_parent_list/*40*/))))->_list/*12*/))))->_upper/*8*//*)*/);
  52. }
  53. /*FI*/return R;
  54. }
  55. /*No:RUN_CLASS.id*/
  56. T0* r355get_or_fatal_error(T355* C,T0* a1){
  57. T0* R=NULL;
  58. R=r355get_feature(C,a1);
  59. /*IF*/if ((R)==((void*)(NULL))) {
  60. r683add_position(X776start_position(a1));
  61. /*[IRF3.6append*/{T0* b1=((T0*)ms6_355);
  62. r7append(((T7*)(oBC683explanation)),b1);
  63. }/*]*/
  64. /*[IRF3.6append*/{T0* b1=X776to_string(a1);
  65. r7append(((T7*)(oBC683explanation)),b1);
  66. }/*]*/
  67. /*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
  68. r7append(((T7*)(oBC683explanation)),b1);
  69. }/*]*/
  70. r683add_type((((T355*)C))->_current_type/*0*/,((T0*)ms67_470));
  71. r683print_as_fatal_error(((T683*)(oBC364eh)));
  72. }
  73. /*FI*/return R;
  74. }
  75. /*No:RUN_CLASS.fz_bad_assertion*/
  76. void r355falling_down(T355* C){
  77. int _i=0;
  78. T0* _rf=NULL;
  79. _i=1;
  80. while (!((_i)>((((T199*)((T199*)((((T355*)C))->_feature_dictionary/*24*/))))->_count/*40*/))) {
  81. _rf=r199item(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),_i);
  82. X496fall_down(_rf);
  83. _i=(_i)+(1);
  84. }
  85. }
  86. /*No:RUN_CLASS.running*/
  87. T0* r355unqualified_name(T355* C){
  88. T0* R=NULL;
  89. T0* _type_bit=NULL;
  90. T0* _ct=NULL;
  91. _ct=(((T355*)C))->_current_type/*0*/;
  92. /*IF*/if (X291is_generic(_ct)) {
  93. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC355ucpn)))))->_count)=(0);
  94. /*]*/
  95. r7extend(((T7*)(oBC355ucpn)),'\137');
  96. r7append(((T7*)(oBC355ucpn)),(((T451*)((T451*)(X291base_class_name(_ct)))))->_to_string/*0*/);
  97. r7to_lower(((T7*)(oBC355ucpn)));
  98. r2append_in((((T355*)C))->_id/*4*/,oBC355ucpn);
  99. }
  100.  else if (X291is_bit(_ct)) {
  101. _type_bit=_ct;
  102. if(NULL!=(_type_bit))switch(((T0*)_type_bit)->id) {
  103. case 549: case 558: 
  104. break;
  105. default:
  106. _type_bit=NULL;
  107. };r7copy(((T7*)(oBC355ucpn)),((T0*)ms3_473));
  108. r2append_in(X609nb(_type_bit),oBC355ucpn);
  109. r7to_lower(((T7*)(oBC355ucpn)));
  110. }
  111. else {
  112. r7copy(((T7*)(oBC355ucpn)),(((T451*)((T451*)(X291base_class_name(_ct)))))->_to_string/*0*/);
  113. r7to_lower(((T7*)(oBC355ucpn)));
  114. }
  115. /*FI*/R=oBC355ucpn;
  116. return R;
  117. }
  118. T0* r355runnable(T0* a1,T0* a2,T0* a3){
  119. T0* R=NULL;
  120. T0* _a=NULL;
  121. int _i=0;
  122. /*IF*/if (!(r608empty(((T608*)a1)))) {
  123. R=r608twin(((T608*)a1));
  124. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  125. while (!((_i)==(0))) {
  126. r604push(((T604*)(oBC364small_eiffel)),a3);
  127. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  128. /*IF*/if ((_a)==((void*)(NULL))) {
  129. r355error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  130. }
  131. else {
  132. /*[IRF3.6put*/{T608* C1=((T608*)R);
  133. T0* b1=_a;
  134. int b2=_i;
  135. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  136. }/*]*/
  137. }
  138. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  139. _i=(_i)-(1);
  140. }
  141. }
  142. /*FI*/return R;
  143. }
  144. void r355set_at_run_time(T355* C){
  145. int _i=0;
  146. T0* _rc=NULL;
  147. T0* _rcd=NULL;
  148. /*IF*/if (!((((T355*)C))->_at_run_time/*8*/)) {
  149. C->_at_run_time=1;
  150. C->_compile_to_c_done=0;
  151. r355add_running(C,(T0*)C);
  152. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  153. /*IF*/if (X291is_reference((((T355*)C))->_current_type/*0*/)) {
  154. _rcd=oBC604run_class_dictionary;
  155. _i=1;
  156. while (!((_i)>((((T250*)((T250*)_rcd)))->_count/*40*/))) {
  157. _rc=r250item(((T250*)_rcd),_i);
  158. /*IF*/if (r355is_a(C,_rc)) {
  159. r355add_running(((T355*)_rc),(T0*)C);
  160. }
  161. /*FI*/_i=(_i)+(1);
  162. }
  163. }
  164. /*FI*/}
  165. /*FI*/}
  166. int r355is_a(T355* C,T0* a1){
  167. int R=0;
  168. T0* _t2=NULL;
  169. T0* _t1=NULL;
  170. /*IF*/if ((a1)==((void*)(C))) {
  171. R=1;
  172. }
  173. else {
  174. _t1=(((T355*)C))->_current_type/*0*/;
  175. _t2=(((T355*)((T355*)a1)))->_current_type/*0*/;
  176. /*IF*/if ((X291is_basic_eiffel_expanded(_t1))&&(X291is_basic_eiffel_expanded(_t2))) {
  177. }
  178. else {
  179. R=X291is_a(_t1,_t2);
  180. /*IF*/if (!(R)) {
  181. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  182. /*]*/
  183. r38clear(((T38*)(oBC683positions)));
  184. /*]*/
  185. }
  186. /*FI*/}
  187. /*FI*/}
  188. /*FI*/return R;
  189. }
  190. /*No:RUN_CLASS.writable_attributes_mem*/
  191. /*No:RUN_CLASS.actuals_clients*/
  192. T0* r355fully_qualified_name(T355* C){
  193. T0* R=NULL;
  194. r7copy(((T7*)(oBC355tmp_string)),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  195. r7extend(((T7*)(oBC355tmp_string)),'\57');
  196. r7append(((T7*)(oBC355tmp_string)),r355unqualified_name(C));
  197. R=oBC355tmp_string;
  198. return R;
  199. }
  200. void r355jvm_expanded_write_local(T355* C,int a1){
  201. /*IF*/if ((r355writable_attributes(C))==((void*)(NULL))) {
  202. r256opcode_istore(((T256*)(oBC364code_attribute)),a1);
  203. }
  204. else {
  205. r256opcode_astore(((T256*)(oBC364code_attribute)),a1);
  206. }
  207. /*FI*/}
  208. /*No:RUN_CLASS.at_run_time*/
  209. T0* r355get_rf(T355* C,T0* a1){
  210. T0* R=NULL;
  211. T0* _tfg=NULL;
  212. T0* _constraint=NULL;
  213. T0* _trt=NULL;
  214. T0* _wbc2=NULL;
  215. T0* _wbc=NULL;
  216. T0* _fn2=NULL;
  217. T0* _fn1=NULL;
  218. int _is_current=0;
  219. T0* _target=NULL;
  220. _target=X135target(a1);
  221. _trt=X662result_type(_target);
  222. _is_current=X662is_current(_target);
  223. _fn1=X135feature_name(a1);
  224. _wbc=r627base_class(((T627*)(X776start_position(_fn1))));
  225. /*IF*/if ((_is_current)||(X291is_like_current(_trt))) {
  226. _fn2=r605new_name_of(((T605*)(X291base_class(_trt))),_wbc,_fn1);
  227. /*IF*/if ((_fn2)!=((void*)(_fn1))) {
  228. r683add_position(X776start_position(_fn1));
  229. R=r355get_or_fatal_error(C,_fn2);
  230. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  231. /*]*/
  232. r38clear(((T38*)(oBC683positions)));
  233. /*]*/
  234. }
  235. else {
  236. R=r355get_or_fatal_error(C,_fn1);
  237. }
  238. /*FI*/}
  239.  else if (X291is_formal_generic(_trt)) {
  240. _tfg=_trt;
  241. if(NULL!=(_tfg))switch(((T0*)_tfg)->id) {
  242. case 283: 
  243. break;
  244. default:
  245. _tfg=NULL;
  246. };_constraint=r283constraint(((T283*)_tfg));
  247. /*IF*/if ((_constraint)==((void*)(NULL))) {
  248. R=r355get_or_fatal_error(C,_fn1);
  249. }
  250.  else if (!(X291is_a(_trt,_constraint))) {
  251. r683print_as_error(((T683*)(oBC364eh)));
  252. r683add_position(X776start_position(X135feature_name(a1)));
  253. /*[IRF3.6append*/{T0* b1=((T0*)ms3_355);
  254. r7append(((T7*)(oBC683explanation)),b1);
  255. }/*]*/
  256. r683print_as_fatal_error(((T683*)(oBC364eh)));
  257. }
  258. else {
  259. _wbc2=r627base_class(((T627*)(X291start_position(_constraint))));
  260. /*IF*/if (((_wbc2)==((void*)(_wbc)))||(r605is_subclass_of(((T605*)_wbc),_wbc2))) {
  261. _fn2=r605new_name_of(((T605*)(X291base_class(_trt))),X291base_class(_constraint),_fn1);
  262. R=r355get_or_fatal_error(C,_fn2);
  263. }
  264. else {
  265. R=r355get_or_fatal_error(C,_fn1);
  266. }
  267. /*FI*/}
  268. /*FI*/}
  269. else {
  270. R=r355get_or_fatal_error(C,_fn1);
  271. }
  272. /*FI*/X496add_client(R,(T0*)C);
  273. /*IF*/if ((((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&(!(_is_current)))&&(!(X496is_exported_in(R,(((T605*)((T605*)_wbc)))->_base_class_name/*24*/)))) {
  274. r683add_position(X496start_position(R));
  275. /*[IRF3.6append*/{T0* b1=((T0*)ms4_355);
  276. r7append(((T7*)(oBC683explanation)),b1);
  277. }/*]*/
  278. /*[IRF3.6append*/{T0* b1=X776to_string(_fn1);
  279. r7append(((T7*)(oBC683explanation)),b1);
  280. }/*]*/
  281. r355error(X776start_position(X135feature_name(a1)),((T0*)ms5_355));
  282. }
  283. /*FI*/return R;
  284. }
  285. T0* r355get_feature(T355* C,T0* a1){
  286. T0* R=NULL;
  287. T0* _bc=NULL;
  288. T0* _fn_key=NULL;
  289. T0* _f=NULL;
  290. _fn_key=X776to_key(a1);
  291. /*IF*/if (r199has(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),_fn_key)) {
  292. R=r199at(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),_fn_key);
  293. }
  294. else {
  295. _bc=r355base_class(C);
  296. _f=r605look_up_for(((T605*)_bc),(T0*)C,a1);
  297. /*IF*/if ((_f)==((void*)(NULL))) {
  298. r355efnf(C,_bc,a1);
  299. }
  300. else {
  301. R=X359to_run_feature(_f,(((T355*)C))->_current_type/*0*/,a1);
  302. /*IF*/if ((R)!=((void*)(NULL))) {
  303. r355store_feature(C,R);
  304. }
  305. else {
  306. r355efnf(C,_bc,a1);
  307. }
  308. /*FI*/}
  309. /*FI*/}
  310. /*FI*/return R;
  311. }
  312. T0* r355class_with(T0* a1){
  313. T0* R=NULL;
  314. R=r604get_class(a1);
  315. return R;
  316. }
  317. void r355jvm_push_default(T355* C){
  318. T0* _cp=NULL;
  319. T0* _ca=NULL;
  320. T0* _t2=NULL;
  321. T0* _rf2=NULL;
  322. T0* _wa=NULL;
  323. int _idx=0;
  324. int _i=0;
  325. _ca=oBC364code_attribute;
  326. _idx=r355fully_qualified_constant_pool_index(C);
  327. r256opcode_new(((T256*)_ca),_idx);
  328. _wa=r355writable_attributes(C);
  329. /*IF*/if ((_wa)!=((void*)(NULL))) {
  330. _i=(((T280*)((T280*)_wa)))->_upper/*12*/;
  331. _cp=oBC364constant_pool;
  332. while (!((_i)==(0))) {
  333. _rf2=r280item(((T280*)_wa),_i);
  334. _t2=X291run_type((((T820*)((T820*)_rf2)))->_result_type/*24*/);
  335. /*IF*/if (X291is_user_expanded(_t2)) {
  336. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  337. /*]*/
  338. r355jvm_expanded_push_default(((T355*)(X291run_class(_t2))));
  339. _idx=r95idx_fieldref(((T95*)_cp),_rf2);
  340. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  341. }
  342.  else if (X291is_bit(_t2)) {
  343. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  344. /*]*/
  345. _idx=X291jvm_push_default(_t2);
  346. _idx=r95idx_fieldref(((T95*)_cp),_rf2);
  347. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  348. }
  349. /*FI*/_i=(_i)-(1);
  350. }
  351. }
  352. /*FI*/}
  353. void r355efnf(T355* C,T0* a1,T0* a2){
  354. /*[IRF3.6append*/{T0* b1=((T0*)ms9_355);
  355. r7append(((T7*)(oBC683explanation)),b1);
  356. }/*]*/
  357. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)C))->_current_type/*0*/);
  358. r7append(((T7*)(oBC683explanation)),b1);
  359. }/*]*/
  360. /*[IRF3.6append*/{T0* b1=((T0*)ms10_355);
  361. r7append(((T7*)(oBC683explanation)),b1);
  362. }/*]*/
  363. /*[IRF3.6append*/{T0* b1=X776to_string(a2);
  364. r7append(((T7*)(oBC683explanation)),b1);
  365. }/*]*/
  366. /*[IRF3.6append*/{T0* b1=((T0*)ms11_355);
  367. r7append(((T7*)(oBC683explanation)),b1);
  368. }/*]*/
  369. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/;
  370. r7append(((T7*)(oBC683explanation)),b1);
  371. }/*]*/
  372. r355error(X776start_position(a2),((T0*)ms67_470));
  373. }
  374. void r355jvm_expanded_push_default(T355* C){
  375. T0* _t=NULL;
  376. int _i=0;
  377. int _idx=0;
  378. T0* _rf2=NULL;
  379. T0* _wa=NULL;
  380. T0* _rf=NULL;
  381. T0* _ca=NULL;
  382. _ca=oBC364code_attribute;
  383. _wa=r355writable_attributes(C);
  384. /*IF*/if ((_wa)==((void*)(NULL))) {
  385. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)_ca),3,1);
  386. /*]*/
  387. }
  388. else {
  389. _idx=r355fully_qualified_constant_pool_index(C);
  390. r256opcode_new(((T256*)(oBC364code_attribute)),_idx);
  391. _i=(((T280*)((T280*)_wa)))->_upper/*12*/;
  392. while (!((_i)==(0))) {
  393. _rf2=r280item(((T280*)_wa),_i);
  394. _t=(((T820*)((T820*)_rf2)))->_result_type/*24*/;
  395. /*IF*/if (X291is_user_expanded(_t)) {
  396. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  397. /*]*/
  398. r355jvm_expanded_push_default(((T355*)(X291run_class(_t))));
  399. _idx=r95idx_fieldref(((T95*)(oBC364constant_pool)),_rf2);
  400. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  401. }
  402. /*FI*/_i=(_i)-(1);
  403. }
  404. }
  405. /*FI*/_rf=r605expanded_initializer(((T605*)(r355base_class(C))),(((T355*)C))->_current_type/*0*/);
  406. /*IF*/if ((_rf)!=((void*)(NULL))) {
  407. r228push_expanded_initialize(((T228*)(oBC364jvm)),_rf);
  408. X496mapping_jvm(_rf);
  409. r228pop(((T228*)(oBC364jvm)));
  410. }
  411. /*FI*/}
  412. void r355make(T355* C,T0* a1){
  413. int _i=0;
  414. T0* _r=NULL;
  415. T0* _rc=NULL;
  416. T0* _rcd=NULL;
  417. T0* _run_string=NULL;
  418. C->_compile_to_c_done=1;
  419. C->_current_type=a1;
  420. {T187*n=malloc(sizeof(*n));
  421. *n=M187;
  422. r187with_capacity(n,16);
  423. C->_actuals_clients=(T0*)n;
  424. }
  425. _run_string=X291run_time_mark(a1);
  426. C->_id=r410item(((T410*)(r355id_provider())),_run_string);
  427. /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_is_ready/*0*/) {
  428. r355warning(NULL,((T0*)ms1_355));
  429. }
  430. /*FI*//*IF*/if (r250has(((T250*)(oBC604run_class_dictionary)),_run_string)) {
  431. r355warning(NULL,((T0*)ms2_355));
  432. }
  433. /*FI*/r250put(((T250*)(oBC604run_class_dictionary)),(T0*)C,_run_string);
  434. {T199*n=malloc(sizeof(*n));
  435. *n=M199;
  436. r199with_capacity(n,64);
  437. C->_feature_dictionary=(T0*)n;
  438. }
  439. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  440. /*IF*/if (X291is_expanded(a1)) {
  441. r355set_at_run_time(C);
  442. r605check_expanded_with(((T605*)(X291base_class(a1))),a1);
  443. }
  444. else {
  445. _rcd=oBC604run_class_dictionary;
  446. _i=1;
  447. while (!((_i)>((((T250*)((T250*)_rcd)))->_count/*40*/))) {
  448. _rc=r250item(((T250*)_rcd),_i);
  449. /*IF*/if ((((((T355*)((T355*)_rc)))->_at_run_time/*8*/)&&(X291is_reference((((T355*)((T355*)_rc)))->_current_type/*0*/)))&&(r355is_a(((T355*)_rc),(T0*)C))) {
  450. r355add_running(C,_rc);
  451. }
  452. /*FI*/_i=(_i)+(1);
  453. }
  454. }
  455. /*FI*//*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
  456. r608clear(((T608*)(oBC355ci_collector)));
  457. r605collect_invariant(((T605*)(r355base_class(C))),(T0*)C);
  458. _r=r355runnable(oBC355ci_collector,(((T355*)C))->_current_type/*0*/,NULL);
  459. /*IF*/if ((_r)!=((void*)(NULL))) {
  460. {T699*n=malloc(sizeof(*n));
  461. *n=M699;
  462. r699from_runnable(n,_r);
  463. C->_invariant_assertion=(T0*)n;
  464. }
  465. }
  466. /*FI*/}
  467. /*FI*/}
  468. T0* r355jvm_root_class(void){
  469. if (fBC364jvm_root_class==0){
  470. T0* R=NULL;
  471. fBC364jvm_root_class=1;
  472. {T7*n=malloc(sizeof(*n));
  473. *n=M7;
  474. r7make(n,12);
  475. R=(T0*)n;
  476. }
  477. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  478. r7extend(((T7*)R),'\57');
  479. r7append(((T7*)R),((T0*)ms112_470));
  480. oBC364jvm_root_class=R;}
  481. return oBC364jvm_root_class;}
  482. /*No:RUN_CLASS.nb_errors*/
  483. void r355jvm_expanded_descriptor_in(T355* C,T0* a1){
  484. T0* _ct=NULL;
  485. _ct=(((T355*)C))->_current_type/*0*/;
  486. /*IF*/if (X291is_user_expanded(_ct)) {
  487. /*IF*/if ((r355writable_attributes(C))==((void*)(NULL))) {
  488. r7extend(((T7*)a1),'B');
  489. }
  490. else {
  491. r7append(((T7*)a1),r355jvm_root_descriptor());
  492. }
  493. /*FI*/}
  494. else {
  495. X291jvm_descriptor_in(_ct,a1);
  496. }
  497. /*FI*/}
  498. void r355store_feature(T355* C,T0* a1){
  499. T0* _rf_key=NULL;
  500. _rf_key=X776to_key(/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  501. /*IF*/if (r199has(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),_rf_key)) {
  502. }
  503. else {
  504. r199put(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),a1,_rf_key);
  505. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  506. }
  507. /*FI*/}
  508. T0* r355writable_attributes(T355* C){
  509. T0* R=NULL;
  510. int _i=0;
  511. T0* _rf2=NULL;
  512. /*IF*/if (((((T355*)C))->_writable_attributes_mem/*32*/)==((void*)(NULL))) {
  513. _i=1;
  514. while (!((_i)>((((T199*)((T199*)((((T355*)C))->_feature_dictionary/*24*/))))->_count/*40*/))) {
  515. _rf2=r199item(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),_i);
  516. if(NULL!=(_rf2))switch(((T0*)_rf2)->id) {
  517. case 820: 
  518. break;
  519. default:
  520. _rf2=NULL;
  521. };/*IF*/if ((_rf2)!=((void*)(NULL))) {
  522. /*IF*/if (((((T355*)C))->_writable_attributes_mem/*32*/)==((void*)(NULL))) {
  523. C->_writable_attributes_mem=se_ma280(1,_rf2);
  524. }
  525. else {
  526. r280add_last(((T280*)((((T355*)C))->_writable_attributes_mem/*32*/)),_rf2);
  527. }
  528. /*FI*/}
  529. /*FI*/_i=(_i)+(1);
  530. }
  531. /*IF*/if (((((T355*)C))->_writable_attributes_mem/*32*/)!=((void*)(NULL))) {
  532. r355sort_wam((((T355*)C))->_writable_attributes_mem/*32*/);
  533. }
  534. /*FI*/}
  535. /*FI*/R=(((T355*)C))->_writable_attributes_mem/*32*/;
  536. return R;
  537. }
  538. /*No:RUN_CLASS.compile_to_c_done*/
  539. void r355jvm_expanded_push_local(T355* C,int a1){
  540. /*IF*/if ((r355writable_attributes(C))==((void*)(NULL))) {
  541. r256opcode_iload(((T256*)(oBC364code_attribute)),a1);
  542. }
  543. else {
  544. r256opcode_aload(((T256*)(oBC364code_attribute)),a1);
  545. }
  546. /*FI*/}
  547. T0*oBC355ci_collector=NULL;
  548. void r355jvm_expanded_xaload(T355* C){
  549. /*IF*/if ((r355writable_attributes(C))==((void*)(NULL))) {
  550. /*[IRF3.4opcode_baload*/r256opcode(((T256*)(oBC364code_attribute)),51,-(1));
  551. /*]*/
  552. }
  553. else {
  554. /*[IRF3.4opcode_aaload*/r256opcode(((T256*)(oBC364code_attribute)),50,-(1));
  555. /*]*/
  556. }
  557. /*FI*/}
  558. /*No:RUN_CLASS.fz_invariant*/
  559. void r355jvm_expanded_xastore(T355* C){
  560. /*IF*/if ((r355writable_attributes(C))==((void*)(NULL))) {
  561. /*[IRF3.4opcode_bastore*/r256opcode(((T256*)(oBC364code_attribute)),84,-(3));
  562. /*]*/
  563. }
  564. else {
  565. /*[IRF3.4opcode_aastore*/r256opcode(((T256*)(oBC364code_attribute)),83,-(3));
  566. /*]*/
  567. }
  568. /*FI*/}
  569. int r355jvm_expanded_if_x_ne(T355* C){
  570. int R=0;
  571. /*IF*/if ((r355writable_attributes(C))==((void*)(NULL))) {
  572. R=r256opcode_if_icmpne(((T256*)(oBC364code_attribute)));
  573. }
  574. else {
  575. R=r256opcode_if_acmpne(((T256*)(oBC364code_attribute)));
  576. }
  577. /*FI*/return R;
  578. }
  579. void r355add_running(T355* C,T0* a1){
  580. /*IF*/if (((((T355*)C))->_running/*12*/)==((void*)(NULL))) {
  581. C->_running=se_ma396(1,a1);
  582. }
  583. else {
  584. /*IF*/if (!(r396fast_has(((T396*)((((T355*)C))->_running/*12*/)),a1))) {
  585. r396add_last(((T396*)((((T355*)C))->_running/*12*/)),a1);
  586. }
  587. /*FI*/}
  588. /*FI*/}
  589. T0*oBC355ucpn=NULL;
  590. void r355jvm_define_class_invariant(T355* C){
  591. T0* _ia=NULL;
  592. /*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
  593. _ia=(((T355*)C))->_invariant_assertion/*16*/;
  594. /*IF*/if ((_ia)!=((void*)(NULL))) {
  595. r228define_class_invariant_method(((T228*)(oBC364jvm)),_ia);
  596. }
  597. /*FI*/}
  598. /*FI*/}
  599. void r355add_client(T355* C,T0* a1){
  600. int _i=0;
  601. _i=r187fast_index_of(((T187*)((((T355*)C))->_actuals_clients/*28*/)),a1);
  602. /*IF*/if ((_i)>((((T187*)((T187*)((((T355*)C))->_actuals_clients/*28*/))))->_upper/*8*/)) {
  603. r187add_last(((T187*)((((T355*)C))->_actuals_clients/*28*/)),a1);
  604. }
  605. /*FI*/}
  606. void r355jvm_check_class_invariant(T355* C){
  607. T0* _cp=NULL;
  608. T0* _ca=NULL;
  609. int _idx=0;
  610. T0* _ia=NULL;
  611. /*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
  612. _ia=(((T355*)C))->_invariant_assertion/*16*/;
  613. /*IF*/if ((_ia)!=((void*)(NULL))) {
  614. _ca=oBC364code_attribute;
  615. _cp=oBC364constant_pool;
  616. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  617. /*]*/
  618. _idx=r95idx_methodref3(((T95*)_cp),r355fully_qualified_name(C),((T0*)ms26_470),((T0*)ms161_470));
  619. r256opcode_invokevirtual(((T256*)_ca),_idx,-(1));
  620. }
  621. /*FI*/}
  622. /*FI*/}
  623. T0* r355jvm_root_descriptor(void){
  624. if (fBC364jvm_root_descriptor==0){
  625. T0* R=NULL;
  626. fBC364jvm_root_descriptor=1;
  627. {T7*n=malloc(sizeof(*n));
  628. *n=M7;
  629. r7make(n,12);
  630. R=(T0*)n;
  631. }
  632. r7extend(((T7*)R),'L');
  633. r7append(((T7*)R),r355jvm_root_class());
  634. r7extend(((T7*)R),'\73');
  635. oBC364jvm_root_descriptor=R;}
  636. return oBC364jvm_root_descriptor;}
  637. T0* r355get_feature_with(T355* C,T0* a1){
  638. T0* R=NULL;
  639. T0* _sfn=NULL;
  640. /*IF*/if (r199has(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),a1)) {
  641. R=r199at(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),a1);
  642. }
  643. else {
  644. {T446*n=malloc(sizeof(*n));
  645. *n=M446;
  646. r446make(n,a1,NULL);
  647. _sfn=(T0*)n;
  648. }
  649. R=r355get_feature(C,_sfn);
  650. }
  651. /*FI*/return R;
  652. }
  653. /*No:RUN_CLASS.collect_invariant*/
  654. T0*oBC355tmp_string=NULL;
  655. /*No:RUN_CLASS.us_bit*/
  656. T0* r355id_provider(void){
  657. if (fBC364id_provider==0){
  658. T0* R=NULL;
  659. fBC364id_provider=1;
  660. {T410*n=malloc(sizeof(*n));
  661. *n=M410;
  662. r410make(n);
  663. R=(T0*)n;
  664. }
  665. oBC364id_provider=R;}
  666. return oBC364id_provider;}
  667. /*No:RUN_CLASS.current_type*/
  668. void r355jvm_expanded_return_code(T355* C){
  669. /*IF*/if ((r355writable_attributes(C))==((void*)(NULL))) {
  670. /*[IRF3.2opcode_ireturn*//*[IRF3.6add_u1*/{int b1=172;
  671. r226add_last(((T226*)(oBC256code)),b1);
  672. }/*]*/
  673. /*]*/
  674. }
  675. else {
  676. /*[IRF3.2opcode_areturn*//*[IRF3.6add_u1*/{int b1=176;
  677. r226add_last(((T226*)(oBC256code)),b1);
  678. }/*]*/
  679. /*]*/
  680. }
  681. /*FI*/}
  682. /*No:RUN_CLASS.fz_29*/
  683. T0* r355get_copy(T355* C){
  684. T0* R=NULL;
  685. R=r355get_rf_with(C,/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r605get_copy(((T605*)(r355class_general())))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  686. return R;
  687. }
  688. /*No:RUN_CLASS.invariant_assertion*/
  689. void r355jvm_invoke(T355* C,int a1,int a2){
  690. T0* _ct=NULL;
  691. _ct=(((T355*)C))->_current_type/*0*/;
  692. /*IF*/if (X291is_reference(_ct)) {
  693. r256opcode_invokevirtual(((T256*)(oBC364code_attribute)),a1,a2);
  694. }
  695.  else if (X291is_basic_eiffel_expanded(_ct)) {
  696. r256opcode_invokestatic(((T256*)(oBC364code_attribute)),a1,a2);
  697. }
  698.  else if ((r355writable_attributes(C))==((void*)(NULL))) {
  699. r256opcode_invokestatic(((T256*)(oBC364code_attribute)),a1,a2);
  700. }
  701. else {
  702. r256opcode_invokevirtual(((T256*)(oBC364code_attribute)),a1,a2);
  703. }
  704. /*FI*/}
  705. /*No:RUN_CLASS.fz_jvm_root*/
  706. T0* r355dynamic(T355* C,T0* a1){
  707. T0* R=NULL;
  708. T0* _up_type=NULL;
  709. T0* _up_fn=NULL;
  710. T0* _fn=NULL;
  711. _up_type=/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/);
  712. /*IF*/if ((C)==((void*)(X291run_class(_up_type)))) {
  713. R=a1;
  714. }
  715. else {
  716. _up_fn=/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/);
  717. _fn=r605new_name_of(((T605*)(r355base_class(C))),X291base_class(_up_type),_up_fn);
  718. R=r355get_or_fatal_error(C,_fn);
  719. }
  720. /*FI*/return R;
  721. }
  722. void r355compile_to_jvm(T355* C){
  723. T0* _rf=NULL;
  724. int _i=0;
  725. r306put_character(((T306*)(oBC364echo)),'\11');
  726. r306put_string(((T306*)(oBC364echo)),X291run_time_mark((((T355*)C))->_current_type/*0*/));
  727. r306put_character(((T306*)(oBC364echo)),'\n');
  728. r228start_new_class(((T228*)(oBC364jvm)),(T0*)C);
  729. _i=1;
  730. while (!((_i)>((((T199*)((T199*)((((T355*)C))->_feature_dictionary/*24*/))))->_count/*40*/))) {
  731. _rf=r199item(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),_i);
  732. /*[IRF3.3set_current_frame*/((((T228*)(((T228*)(oBC364jvm)))))->_current_frame)=(_rf);
  733. /*]*/
  734. X496jvm_field_or_method(_rf);
  735. _i=(_i)+(1);
  736. }
  737. /*[IRF3.2prepare_fields*/{T0* _rf=NULL;
  738. int _i=0;
  739. _i=/*X308*/((int)(((T308*)((T308*)(oBC228fields))))->_upper/*12*/);
  740. while (!((_i)<(0))) {
  741. _rf=/*X308*/((T0*)r308item(((T308*)(oBC228fields)),_i));
  742. X496jvm_define(_rf);
  743. _i=(_i)-(1);
  744. }
  745. }/*]*/
  746. r228prepare_methods(((T228*)(oBC364jvm)));
  747. r228finish_class(((T228*)(oBC364jvm)));
  748. }
  749. /*No:RUN_CLASS.fz_dot*/
  750. int r355fully_qualified_constant_pool_index(T355* C){
  751. int R=0;
  752. R=r95idx_class2(((T95*)(oBC364constant_pool)),r355fully_qualified_name(C));
  753. return R;
  754. }
  755. int fBC364class_general=0;
  756. T0*oBC364class_general=NULL;
  757. T0* r355class_general(void){
  758. if (fBC364class_general==0){
  759. T0* R=NULL;
  760. fBC364class_general=1;
  761. R=r355class_with(((T0*)ms14_473));
  762. oBC364class_general=R;}
  763. return oBC364class_general;}
  764. void r355sort_wam(T0* a1){
  765. int _moved=0;
  766. int _buble=0;
  767. int _max=0;
  768. int _min=0;
  769. _max=(((T280*)((T280*)a1)))->_upper/*12*/;
  770. _min=1;
  771. _moved=1;
  772. while (!(!(_moved))) {
  773. _moved=0;
  774. /*IF*/if (((_max)-(_min))>(0)) {
  775. _buble=(_min)+(1);
  776. while (!((_buble)>(_max))) {
  777. /*IF*/if (r355gt(r280item(((T280*)a1),(_buble)-(1)),r280item(((T280*)a1),_buble))) {
  778. r280swap(((T280*)a1),(_buble)-(1),_buble);
  779. _moved=1;
  780. }
  781. /*FI*/_buble=(_buble)+(1);
  782. }
  783. _max=(_max)-(1);
  784. }
  785. /*FI*//*IF*/if ((_moved)&&(((_max)-(_min))>(0))) {
  786. _moved=0;
  787. _buble=(_max)-(1);
  788. while (!((_buble)<(_min))) {
  789. /*IF*/if (r355gt(r280item(((T280*)a1),_buble),r280item(((T280*)a1),(_buble)+(1)))) {
  790. r280swap(((T280*)a1),_buble,(_buble)+(1));
  791. _moved=1;
  792. }
  793. /*FI*/_buble=(_buble)-(1);
  794. }
  795. _min=(_min)+(1);
  796. }
  797. /*FI*/}
  798. }
  799. void r355error(T0* a1,T0* a2){
  800. r683add_position(a1);
  801. r683error(((T683*)(oBC364eh)),a2);
  802. }
  803. T0* r355base_class(T355* C){
  804. T0* R=NULL;
  805. R=X291base_class((((T355*)C))->_current_type/*0*/);
  806. return R;
  807. }
  808. /*No:RUN_CLASS.feature_dictionary*/
  809. T0* r355get_rf_with(T355* C,T0* a1){
  810. T0* R=NULL;
  811. T0* _wbc=NULL;
  812. T0* _fn2=NULL;
  813. _wbc=r627base_class(((T627*)(X776start_position(a1))));
  814. _fn2=r605new_name_of(((T605*)(r355base_class(C))),_wbc,a1);
  815. /*IF*/if ((_fn2)!=((void*)(a1))) {
  816. r683add_position(X776start_position(a1));
  817. R=r355get_or_fatal_error(C,_fn2);
  818. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  819. /*]*/
  820. r38clear(((T38*)(oBC683positions)));
  821. /*]*/
  822. }
  823. else {
  824. R=r355get_or_fatal_error(C,_fn2);
  825. }
  826. /*FI*/return R;
  827. }
  828. int r355jvm_expanded_if_x_eq(T355* C){
  829. int R=0;
  830. /*IF*/if ((r355writable_attributes(C))==((void*)(NULL))) {
  831. R=r256opcode_if_icmpeq(((T256*)(oBC364code_attribute)));
  832. }
  833. else {
  834. R=r256opcode_if_acmpeq(((T256*)(oBC364code_attribute)));
  835. }
  836. /*FI*/return R;
  837. }
  838. void r355afd_check(T355* C){
  839. int _i=0;
  840. T0* _rf=NULL;
  841. _i=1;
  842. while (!((_i)>((((T199*)((T199*)((((T355*)C))->_feature_dictionary/*24*/))))->_count/*40*/))) {
  843. _rf=r199item(((T199*)((((T355*)C))->_feature_dictionary/*24*/)),_i);
  844. X496afd_check(_rf);
  845. _i=(_i)+(1);
  846. }
  847. }
  848. /*No:RUN_CLASS.us_general*/
  849. void r355warning(T0* a1,T0* a2){
  850. r683add_position(a1);
  851. r683warning(((T683*)(oBC364eh)),a2);
  852. }
  853. int r636gives_permission_to_any(T636* C){
  854. int R=0;
  855. /*IF*/if (/*(IRF4.7is_omitted*/((((T636*)C))->_start_position/*0*/)==(NULL)/*)*/) {
  856. R=1;
  857. }
  858.  else if (((((T636*)C))->_list/*4*/)==((void*)(NULL))) {
  859. }
  860. else {
  861. R=r33gives_permission_to_any(((T33*)((((T636*)C))->_list/*4*/)));
  862. }
  863. /*FI*/return R;
  864. }
  865. void r636merge(T636* C,T0* a1,T0* a2,T0* a3){
  866. C->_start_position=a1;
  867. {T33*n=malloc(sizeof(*n));
  868. *n=M33;
  869. r33merge(n,a2,a3);
  870. C->_list=(T0*)n;
  871. }
  872. }
  873. void r636make(T636* C,T0* a1,T0* a2){
  874. C->_start_position=a1;
  875. /*IF*/if ((a2)!=((void*)(NULL))) {
  876. {T33*n=malloc(sizeof(*n));
  877. *n=M33;
  878. r33make(n,a2);
  879. C->_list=(T0*)n;
  880. }
  881. }
  882. /*FI*/}
  883. /*No:CLIENT_LIST.start_position*/
  884. /*No:CLIENT_LIST.is_omitted*/
  885. int r636gives_permission_to(T636* C,T0* a1){
  886. int R=0;
  887. /*IF*/if (/*(IRF4.7is_omitted*/((((T636*)C))->_start_position/*0*/)==(NULL)/*)*/) {
  888. R=1;
  889. }
  890.  else if (((((T636*)C))->_list/*4*/)==((void*)(NULL))) {
  891. }
  892. else {
  893. R=r33gives_permission_to(((T33*)((((T636*)C))->_list/*4*/)),a1);
  894. }
  895. /*FI*//*IF*/if (!(R)) {
  896. r683add_position((((T636*)C))->_start_position/*0*/);
  897. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)a1)))->_to_string/*0*/;
  898. r7append(((T7*)(oBC683explanation)),b1);
  899. }/*]*/
  900. /*[IRF3.6append*/{T0* b1=((T0*)ms4_636);
  901. r7append(((T7*)(oBC683explanation)),b1);
  902. }/*]*/
  903. }
  904. /*FI*/return R;
  905. }
  906. /*No:CLIENT_LIST.list*/
  907. /*No:CLIENT_LIST.omitted*/
  908. T0* r636append(T636* C,T0* a1){
  909. T0* R=NULL;
  910. /*IF*/if ((((C)==((void*)(a1)))||(/*(IRF4.7is_omitted*/((((T636*)C))->_start_position/*0*/)==(NULL)/*)*/))||(r636gives_permission_to_any(C))) {
  911. R=(T0*)C;
  912. }
  913.  else if ((/*(IRF4.7is_omitted*/((((T636*)((T636*)a1)))->_start_position/*0*/)==(NULL)/*)*/)||(r636gives_permission_to_any(((T636*)a1)))) {
  914. R=a1;
  915. }
  916. else {
  917. {T636*n=malloc(sizeof(*n));
  918. *n=M636;
  919. r636merge(n,(((T636*)C))->_start_position/*0*/,(((T636*)C))->_list/*4*/,(((T636*)((T636*)a1)))->_list/*4*/);
  920. R=(T0*)n;
  921. }
  922. }
  923. /*FI*/return R;
  924. }
  925. T0* r358add_comment(T358* C,T0* a1){
  926. T0* R=NULL;
  927. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  928. R=(T0*)C;
  929. }
  930. else {
  931. {T529*n=malloc(sizeof(*n));
  932. *n=M529;
  933. r529make(n,(T0*)C,a1);
  934. R=(T0*)n;
  935. }
  936. }
  937. /*FI*/return R;
  938. }
  939. int r358to_integer(T358* C){
  940. int R=0;
  941. r358error((((T358*)C))->_start_position/*20*/,((T0*)ms69_470));
  942. return R;
  943. }
  944. int r358is_a(T358* C,T0* a1){
  945. int R=0;
  946. R=X291is_a(X291run_type(/*(IRF4.3result_type*/(((T358*)C))->_current_type/*8*//*)*/),X291run_type(X662result_type(a1)));
  947. /*IF*/if (!(R)) {
  948. r683add_position((((T358*)C))->_start_position/*20*/);
  949. r358error(X662start_position(a1),((T0*)ms4_662));
  950. }
  951. /*FI*/return R;
  952. }
  953. /*No:E_CURRENT.is_current*/
  954. int r358jvm_branch_if_false(T358* C){
  955. int R=0;
  956. r358compile_to_jvm(C);
  957. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  958. return R;
  959. }
  960. /*No:E_CURRENT.static_value*/
  961. /*No:E_CURRENT.is_written*/
  962. void r358make(T358* C,T0* a1,int a2){
  963. C->_start_position=a1;
  964. C->_is_written=a2;
  965. C->_to_string=((T0*)ms143_473);
  966. }
  967. /*No:E_CURRENT.us_current*/
  968. /*No:E_CURRENT.to_string*/
  969. /*No:E_CURRENT.compile_to_jvm_assignment*/
  970. /*No:E_CURRENT.fz_iinaiv*/
  971. int r358jvm_branch_if_true(T358* C){
  972. int R=0;
  973. r358compile_to_jvm(C);
  974. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  975. return R;
  976. }
  977. /*No:E_CURRENT.start_position*/
  978. /*No:E_CURRENT.compile_to_jvm_old*/
  979. T0* r358to_runnable(T358* C,T0* a1){
  980. T0* R=NULL;
  981. /*IF*/if (((((T358*)C))->_current_type/*8*/)==((void*)(NULL))) {
  982. C->_current_type=a1;
  983. R=(T0*)C;
  984. }
  985.  else if (((((T358*)C))->_current_type/*8*/)==((void*)(a1))) {
  986. R=(T0*)C;
  987. }
  988. else {
  989. {T358*n=malloc(sizeof(*n));
  990. *n=M358;
  991. r358make(n,(((T358*)C))->_start_position/*20*/,(((T358*)C))->_is_written/*16*/);
  992. R=(T0*)n;
  993. }
  994. /*[IRF3.3set_current_type*/((((T358*)(((T358*)R))))->_current_type)=(a1);
  995. /*]*/
  996. }
  997. /*FI*/return R;
  998. }
  999. /*No:E_CURRENT.result_type*/
  1000. /*No:E_CURRENT.is_result*/
  1001. /*No:E_CURRENT.set_current_type*/
  1002. /*No:E_CURRENT.is_static*/
  1003. void r358standard_compile_target_to_jvm(T358* C){
  1004. r358compile_to_jvm(C);
  1005. X291jvm_check_class_invariant(/*(IRF4.3result_type*/(((T358*)C))->_current_type/*8*//*)*/);
  1006. }
  1007. int r358compile_to_jvm_into(T358* C,T0* a1){
  1008. int R=0;
  1009. R=r358standard_compile_to_jvm_into(C,a1);
  1010. return R;
  1011. }
  1012. void r358compile_target_to_jvm(T358* C){
  1013. /*IF*/if ((((T358*)C))->_is_written/*16*/) {
  1014. r358standard_compile_target_to_jvm(C);
  1015. }
  1016. else {
  1017. r358compile_to_jvm(C);
  1018. }
  1019. /*FI*/}
  1020. /*No:E_CURRENT.can_be_dropped*/
  1021. /*No:E_CURRENT.current_type*/
  1022. /*No:E_CURRENT.jvm_assign*/
  1023. /*No:E_CURRENT.static_value_mem*/
  1024. /*No:E_CURRENT.is_manifest_string*/
  1025. /*No:E_CURRENT.is_void*/
  1026. void r358compile_to_jvm(T358* C){
  1027. X291jvm_push_local(/*(IRF4.3result_type*/(((T358*)C))->_current_type/*8*//*)*/,0);
  1028. }
  1029. /*No:E_CURRENT.is_pre_computable*/
  1030. /*No:E_CURRENT.use_current*/
  1031. void r358error(T0* a1,T0* a2){
  1032. r683add_position(a1);
  1033. r683error(((T683*)(oBC364eh)),a2);
  1034. }
  1035. /*No:E_CURRENT.isa_dca_inline_argument*/
  1036. int r358standard_compile_to_jvm_into(T358* C,T0* a1){
  1037. int R=0;
  1038. r358compile_to_jvm(C);
  1039. R=X291jvm_convert_to(X291run_type(/*(IRF4.3result_type*/(((T358*)C))->_current_type/*8*//*)*/),a1);
  1040. return R;
  1041. }
  1042. /*No:E_CURRENT.afd_check*/
  1043. /*No:COMPOUND.empty_or_null_body*/
  1044. void r592make(T592* C,T0* a1,T0* a2){
  1045. C->_header_comment=a1;
  1046. C->_list=a2;
  1047. }
  1048. /*No:COMPOUND.nb_errors*/
  1049. T0* r592to_runnable(T592* C,T0* a1){
  1050. T0* R=NULL;
  1051. T0* _i2=NULL;
  1052. T0* _i1=NULL;
  1053. int _i=0;
  1054. /*IF*/if (((((T592*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1055. C->_current_type=a1;
  1056. /*IF*/if (((((T592*)C))->_list/*8*/)!=((void*)(NULL))) {
  1057. _i=(((T419*)((T419*)((((T592*)C))->_list/*8*/))))->_upper/*8*/;
  1058. while (!((_i)==(0))) {
  1059. _i1=r419item(((T419*)((((T592*)C))->_list/*8*/)),_i);
  1060. _i2=X465to_runnable(_i1,(T0*)C);
  1061. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)) {
  1062. /*[IRF3.6append*/{T0* b1=((T0*)ms1_592);
  1063. r7append(((T7*)(oBC683explanation)),b1);
  1064. }/*]*/
  1065. /*[IRF3.6append*/{T0* b1=X291written_mark((((T592*)C))->_current_type/*4*/);
  1066. r7append(((T7*)(oBC683explanation)),b1);
  1067. }/*]*/
  1068. r683add_position(X465start_position(_i1));
  1069. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_592);
  1070. r683fatal_error(((T683*)(oBC364eh)),b1);
  1071. }/*]*/
  1072. }
  1073. else {
  1074. /*[IRF3.6put*/{T419* C1=((T419*)((((T592*)C))->_list/*8*/));
  1075. T0* b1=_i2;
  1076. int b2=_i;
  1077. ((((T419*)C1))->_storage/*0*/)[(b2)-((((T419*)C1))->_lower/*12*/)]=(b1);
  1078. }/*]*/
  1079. }
  1080. /*FI*/_i=(_i)-(1);
  1081. }
  1082. }
  1083. /*FI*/R=(T0*)C;
  1084. }
  1085. else {
  1086. /*IF*/if (((((T592*)C))->_list/*8*/)==((void*)(NULL))) {
  1087. {T592*n=malloc(sizeof(*n));
  1088. *n=M592;
  1089. r592make(n,(((T592*)C))->_header_comment/*0*/,NULL);
  1090. R=(T0*)n;
  1091. }
  1092. }
  1093. else {
  1094. {T592*n=malloc(sizeof(*n));
  1095. *n=M592;
  1096. r592make(n,(((T592*)C))->_header_comment/*0*/,r419twin(((T419*)((((T592*)C))->_list/*8*/))));
  1097. R=(T0*)n;
  1098. }
  1099. }
  1100. /*FI*/R=r592to_runnable(((T592*)R),a1);
  1101. }
  1102. /*FI*/return R;
  1103. }
  1104. /*No:COMPOUND.list*/
  1105. /*No:COMPOUND.current_type*/
  1106. T0* r592run_class(T592* C){
  1107. T0* R=NULL;
  1108. R=X291run_class((((T592*)C))->_current_type/*4*/);
  1109. return R;
  1110. }
  1111. /*No:COMPOUND.header_comment*/
  1112. void r592compile_to_jvm(T592* C){
  1113. int _i=0;
  1114. /*IF*/if (((((T592*)C))->_list/*8*/)!=((void*)(NULL))) {
  1115. _i=1;
  1116. while (!((_i)>((((T419*)((T419*)((((T592*)C))->_list/*8*/))))->_upper/*8*/))) {
  1117. X465compile_to_jvm(r419item(((T419*)((((T592*)C))->_list/*8*/)),_i));
  1118. _i=(_i)+(1);
  1119. }
  1120. }
  1121. /*FI*/}
  1122. int r592is_pre_computable(T592* C){
  1123. int R=0;
  1124. int _i=0;
  1125. /*IF*/if (((((T592*)C))->_list/*8*/)==((void*)(NULL))) {
  1126. R=1;
  1127. }
  1128. else {
  1129. _i=(((T419*)((T419*)((((T592*)C))->_list/*8*/))))->_upper/*8*/;
  1130. R=1;
  1131. while (!((!(R))||((_i)==(0)))) {
  1132. R=X465is_pre_computable(r419item(((T419*)((((T592*)C))->_list/*8*/)),_i));
  1133. _i=(_i)-(1);
  1134. }
  1135. }
  1136. /*FI*/return R;
  1137. }
  1138. int r592use_current(T592* C){
  1139. int R=0;
  1140. int _i=0;
  1141. /*IF*/if (((((T592*)C))->_list/*8*/)!=((void*)(NULL))) {
  1142. _i=(((T419*)((T419*)((((T592*)C))->_list/*8*/))))->_upper/*8*/;
  1143. while (!((R)||((_i)==(0)))) {
  1144. R=X465use_current(r419item(((T419*)((((T592*)C))->_list/*8*/)),_i));
  1145. _i=(_i)-(1);
  1146. }
  1147. }
  1148. /*FI*/return R;
  1149. }
  1150. int r592count(T592* C){
  1151. int R=0;
  1152. /*IF*/if (((((T592*)C))->_list/*8*/)!=((void*)(NULL))) {
  1153. R=(((T419*)((T419*)((((T592*)C))->_list/*8*/))))->_upper/*8*/;
  1154. }
  1155. /*FI*/return R;
  1156. }
  1157. /*No:COMPOUND.fatal_error*/
  1158. T0* r592first(T592* C){
  1159. T0* R=NULL;
  1160. /*IF*/if (((((T592*)C))->_list/*8*/)!=((void*)(NULL))) {
  1161. R=r419first(((T419*)((((T592*)C))->_list/*8*/)));
  1162. }
  1163. /*FI*/return R;
  1164. }
  1165. void r592afd_check(T592* C){
  1166. int _i=0;
  1167. /*IF*/if (((((T592*)C))->_list/*8*/)!=((void*)(NULL))) {
  1168. _i=(((T419*)((T419*)((((T592*)C))->_list/*8*/))))->_upper/*8*/;
  1169. while (!((_i)==(0))) {
  1170. X465afd_check(r419item(((T419*)((((T592*)C))->_list/*8*/)),_i));
  1171. _i=(_i)-(1);
  1172. }
  1173. }
  1174. /*FI*/}
  1175. T0* r529add_comment(T529* C,T0* a1){
  1176. T0* R=NULL;
  1177. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1178. R=(T0*)C;
  1179. }
  1180. else {
  1181. {T529*n=malloc(sizeof(*n));
  1182. *n=M529;
  1183. r529make(n,(T0*)C,a1);
  1184. R=(T0*)n;
  1185. }
  1186. }
  1187. /*FI*/return R;
  1188. }
  1189. int r529to_integer(T529* C){
  1190. int R=0;
  1191. r529error(r529start_position(C),((T0*)ms69_470));
  1192. return R;
  1193. }
  1194. int r529is_a(T529* C,T0* a1){
  1195. int R=0;
  1196. R=X291is_a(X291run_type(r529result_type(C)),X291run_type(X662result_type(a1)));
  1197. /*IF*/if (!(R)) {
  1198. r683add_position(r529start_position(C));
  1199. r529error(X662start_position(a1),((T0*)ms4_662));
  1200. }
  1201. /*FI*/return R;
  1202. }
  1203. /*No:EXPRESSION_WITH_COMMENT.is_current*/
  1204. int r529jvm_branch_if_false(T529* C){
  1205. int R=0;
  1206. R=X662jvm_branch_if_false((((T529*)C))->_expression/*12*/);
  1207. return R;
  1208. }
  1209. /*No:EXPRESSION_WITH_COMMENT.static_value*/
  1210. void r529make(T529* C,T0* a1,T0* a2){
  1211. C->_expression=a1;
  1212. C->_comment=a2;
  1213. }
  1214. void r529compile_to_jvm_assignment(T529* C,T0* a1){
  1215. X662compile_to_jvm_assignment((((T529*)C))->_expression/*12*/,a1);
  1216. }
  1217. /*No:EXPRESSION_WITH_COMMENT.fz_iinaiv*/
  1218. int r529jvm_branch_if_true(T529* C){
  1219. int R=0;
  1220. R=X662jvm_branch_if_true((((T529*)C))->_expression/*12*/);
  1221. return R;
  1222. }
  1223. /*No:EXPRESSION_WITH_COMMENT.expression*/
  1224. T0* r529start_position(T529* C){
  1225. T0* R=NULL;
  1226. R=X662start_position((((T529*)C))->_expression/*12*/);
  1227. return R;
  1228. }
  1229. void r529compile_to_jvm_old(T529* C){
  1230. X662compile_to_jvm_old((((T529*)C))->_expression/*12*/);
  1231. }
  1232. /*No:EXPRESSION_WITH_COMMENT.comment*/
  1233. T0* r529to_runnable(T529* C,T0* a1){
  1234. T0* R=NULL;
  1235. /*IF*/if (((((T529*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1236. C->_current_type=a1;
  1237. C->_expression=X662to_runnable((((T529*)C))->_expression/*12*/,a1);
  1238. R=(T0*)C;
  1239. }
  1240. else {
  1241. R=r529twin(C);
  1242. /*[IRF3.3set_current_type*/((((T529*)(((T529*)R))))->_current_type)=(NULL);
  1243. /*]*/
  1244. R=r529to_runnable(((T529*)R),a1);
  1245. }
  1246. /*FI*/return R;
  1247. }
  1248. T0* r529result_type(T529* C){
  1249. T0* R=NULL;
  1250. R=X662result_type((((T529*)C))->_expression/*12*/);
  1251. return R;
  1252. }
  1253. /*No:EXPRESSION_WITH_COMMENT.is_result*/
  1254. T0* r529twin(T529* C){
  1255. T0* R=NULL;
  1256. R=malloc(sizeof(*C));
  1257. *((T529*)R)=*C;
  1258. return R;
  1259. }
  1260. /*No:EXPRESSION_WITH_COMMENT.set_current_type*/
  1261. int r529is_static(T529* C){
  1262. int R=0;
  1263. R=X662is_static((((T529*)C))->_expression/*12*/);
  1264. /*IF*/if (R) {
  1265. C->_static_value_mem=X662static_value_mem((((T529*)C))->_expression/*12*/);
  1266. }
  1267. /*FI*/return R;
  1268. }
  1269. int r529compile_to_jvm_into(T529* C,T0* a1){
  1270. int R=0;
  1271. R=X662compile_to_jvm_into((((T529*)C))->_expression/*12*/,a1);
  1272. return R;
  1273. }
  1274. void r529compile_target_to_jvm(T529* C){
  1275. X662compile_target_to_jvm((((T529*)C))->_expression/*12*/);
  1276. }
  1277. int r529can_be_dropped(T529* C){
  1278. int R=0;
  1279. R=X662can_be_dropped((((T529*)C))->_expression/*12*/);
  1280. return R;
  1281. }
  1282. /*No:EXPRESSION_WITH_COMMENT.current_type*/
  1283. void r529jvm_assign(T529* C){
  1284. X662jvm_assign((((T529*)C))->_expression/*12*/);
  1285. }
  1286. /*No:EXPRESSION_WITH_COMMENT.static_value_mem*/
  1287. /*No:EXPRESSION_WITH_COMMENT.is_manifest_string*/
  1288. /*No:EXPRESSION_WITH_COMMENT.is_void*/
  1289. void r529compile_to_jvm(T529* C){
  1290. X662compile_to_jvm((((T529*)C))->_expression/*12*/);
  1291. }
  1292. int r529is_pre_computable(T529* C){
  1293. int R=0;
  1294. R=X662is_pre_computable((((T529*)C))->_expression/*12*/);
  1295. return R;
  1296. }
  1297. int r529use_current(T529* C){
  1298. int R=0;
  1299. R=X662use_current((((T529*)C))->_expression/*12*/);
  1300. return R;
  1301. }
  1302. void r529error(T0* a1,T0* a2){
  1303. r683add_position(a1);
  1304. r683error(((T683*)(oBC364eh)),a2);
  1305. }
  1306. int r529isa_dca_inline_argument(T529* C){
  1307. int R=0;
  1308. R=X662isa_dca_inline_argument((((T529*)C))->_expression/*12*/);
  1309. return R;
  1310. }
  1311. void r529afd_check(T529* C){
  1312. X662afd_check((((T529*)C))->_expression/*12*/);
  1313. }
  1314. T0* r436sd(T0* a1){
  1315. T0* R=NULL;
  1316. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC436tmp_string)))))->_count)=(0);
  1317. /*]*/
  1318. r7extend(((T7*)(oBC436tmp_string)),'\133');
  1319. X291jvm_descriptor_in(a1,oBC436tmp_string);
  1320. R=oBC436tmp_string;
  1321. return R;
  1322. }
  1323. T0* r436add_comment(T436* C,T0* a1){
  1324. T0* R=NULL;
  1325. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1326. R=(T0*)C;
  1327. }
  1328. else {
  1329. {T529*n=malloc(sizeof(*n));
  1330. *n=M529;
  1331. r529make(n,(T0*)C,a1);
  1332. R=(T0*)n;
  1333. }
  1334. }
  1335. /*FI*/return R;
  1336. }
  1337. int r436to_integer(T436* C){
  1338. int R=0;
  1339. r436error((((T436*)C))->_start_position/*12*/,((T0*)ms69_470));
  1340. return R;
  1341. }
  1342. int r436is_a(T436* C,T0* a1){
  1343. int R=0;
  1344. R=r709is_a(((T709*)((((T709*)((T709*)((((T436*)C))->_result_type/*20*/))))->_run_type/*16*/)),X291run_type(X662result_type(a1)));
  1345. /*IF*/if (!(R)) {
  1346. r683add_position((((T436*)C))->_start_position/*12*/);
  1347. r436error(X662start_position(a1),((T0*)ms4_662));
  1348. }
  1349. /*FI*/return R;
  1350. }
  1351. /*No:MANIFEST_ARRAY.is_current*/
  1352. /*No:MANIFEST_ARRAY.jvm_branch_if_false*/
  1353. /*No:MANIFEST_ARRAY.us_lower*/
  1354. /*No:MANIFEST_ARRAY.static_value*/
  1355. /*No:MANIFEST_ARRAY.us_capacity*/
  1356. void r436make(T436* C,T0* a1,T0* a2){
  1357. C->_start_position=a1;
  1358. C->_list=a2;
  1359. }
  1360. /*No:MANIFEST_ARRAY.nb_errors*/
  1361. /*No:MANIFEST_ARRAY.compile_to_jvm_assignment*/
  1362. /*No:MANIFEST_ARRAY.fz_iinaiv*/
  1363. T0* r436type_any(void){
  1364. if (fBC364type_any==0){
  1365. T0* R=NULL;
  1366. fBC364type_any=1;
  1367. {T669*n=malloc(sizeof(*n));
  1368. *n=M669;
  1369. r669make(n,NULL);
  1370. R=(T0*)n;
  1371. }
  1372. oBC364type_any=R;}
  1373. return oBC364type_any;}
  1374. /*No:MANIFEST_ARRAY.jvm_branch_if_true*/
  1375. /*No:MANIFEST_ARRAY.start_position*/
  1376. void r436compile_to_jvm_old(T436* C){
  1377. int _i=0;
  1378. /*IF*/if (((((T436*)C))->_list/*16*/)!=((void*)(NULL))) {
  1379. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*16*/))))->_upper/*12*/);
  1380. while (!((_i)==(0))) {
  1381. X662compile_to_jvm_old(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*16*/)),_i)));
  1382. _i=(_i)-(1);
  1383. }
  1384. }
  1385. /*FI*/}
  1386. T0* r436to_runnable(T436* C,T0* a1){
  1387. T0* R=NULL;
  1388. T0* _t=NULL;
  1389. T0* _e=NULL;
  1390. int _i=0;
  1391. /*IF*/if (((((T436*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1392. C->_current_type=a1;
  1393. /*IF*/if (((((T436*)C))->_list/*16*/)==((void*)(NULL))) {
  1394. _t=r436type_any();
  1395. }
  1396. else {
  1397. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*16*/))))->_upper/*12*/);
  1398. while (!((_i)==(0))) {
  1399. _e=X662to_runnable(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*16*/)),_i)),a1);
  1400. /*IF*/if ((_e)==((void*)(NULL))) {
  1401. r683add_position((((T436*)C))->_start_position/*12*/);
  1402. r436error(X662start_position(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*16*/)),_i))),((T0*)ms1_436));
  1403. _i=0;
  1404. }
  1405. else {
  1406. /*X96*//*[IRF3.6put*/{T96* C1=((T96*)((((T436*)C))->_list/*16*/));
  1407. T0* b1=_e;
  1408. int b2=_i;
  1409. ((((T96*)C1))->_storage/*4*/)[(b2)-((((T96*)C1))->_lower/*16*/)]=(b1);
  1410. }/*]*/
  1411. /*IF*/if ((_t)==((void*)(NULL))) {
  1412. _t=X662result_type(_e);
  1413. }
  1414. else {
  1415. _t=X291smallest_ancestor(_t,X662result_type(_e));
  1416. }
  1417. /*FI*/_i=(_i)-(1);
  1418. }
  1419. /*FI*/}
  1420. }
  1421. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1422. {T709*n=malloc(sizeof(*n));
  1423. *n=M709;
  1424. r709make(n,(((T436*)C))->_start_position/*12*/,X291run_type(_t));
  1425. C->_result_type=(T0*)n;
  1426. }
  1427. C->_result_type=r709to_runnable(((T709*)((((T436*)C))->_result_type/*20*/)),(((T436*)C))->_current_type/*8*/);
  1428. r355set_at_run_time(((T355*)(r709run_class(((T709*)((((T436*)C))->_result_type/*20*/))))));
  1429. R=(T0*)C;
  1430. /*IF*/if ((X291is_reference(_t))&&(((((T436*)C))->_list/*16*/)!=((void*)(NULL)))) {
  1431. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*16*/))))->_upper/*12*/);
  1432. while (!((_i)==(0))) {
  1433. _t=X662result_type(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*16*/)),_i)));
  1434. /*IF*/if (X291is_expanded(_t)) {
  1435. X291used_as_reference(_t);
  1436. }
  1437. /*FI*/_i=(_i)-(1);
  1438. }
  1439. }
  1440. /*FI*/}
  1441. /*FI*/}
  1442. else {
  1443. /*IF*/if (((((T436*)C))->_list/*16*/)==((void*)(NULL))) {
  1444. {T436*n=malloc(sizeof(*n));
  1445. *n=M436;
  1446. r436make(n,(((T436*)C))->_start_position/*12*/,NULL);
  1447. R=(T0*)n;
  1448. }
  1449. }
  1450. else {
  1451. {T436*n=malloc(sizeof(*n));
  1452. *n=M436;
  1453. r436make(n,(((T436*)C))->_start_position/*12*/,X96twin((((T436*)C))->_list/*16*/));
  1454. R=(T0*)n;
  1455. }
  1456. }
  1457. /*FI*/R=r436to_runnable(((T436*)R),a1);
  1458. }
  1459. /*FI*/return R;
  1460. }
  1461. /*No:MANIFEST_ARRAY.fz_30*/
  1462. /*No:MANIFEST_ARRAY.result_type*/
  1463. /*No:MANIFEST_ARRAY.is_result*/
  1464. /*No:MANIFEST_ARRAY.is_static*/
  1465. int r436compile_to_jvm_into(T436* C,T0* a1){
  1466. int R=0;
  1467. R=1;
  1468. r436compile_to_jvm(C);
  1469. return R;
  1470. }
  1471. /*No:MANIFEST_ARRAY.list*/
  1472. void r436compile_target_to_jvm(T436* C){
  1473. T0* _ca=NULL;
  1474. T0* _cp=NULL;
  1475. int _idx_rc=0;
  1476. T0* _rc=NULL;
  1477. int _space=0;
  1478. int _idx=0;
  1479. int _i=0;
  1480. T0* _elt_type=NULL;
  1481. T0* _rt=NULL;
  1482. _cp=oBC364constant_pool;
  1483. _ca=oBC364code_attribute;
  1484. _rt=(((T709*)((T709*)((((T436*)C))->_result_type/*20*/))))->_run_type/*16*/;
  1485. _rc=X291run_class(_rt);
  1486. _elt_type=X291run_type(r701item(((T701*)(X291generic_list(_rt))),1));
  1487. _idx_rc=r355fully_qualified_constant_pool_index(((T355*)_rc));
  1488. r256opcode_new(((T256*)_ca),_idx_rc);
  1489. _idx=r95idx_fieldref4(((T95*)_cp),_idx_rc,((T0*)ms87_473),((T0*)ms162_470));
  1490. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1491. /*]*/
  1492. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
  1493. /*]*/
  1494. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  1495. _idx=r95idx_fieldref4(((T95*)_cp),_idx_rc,((T0*)ms140_473),((T0*)ms162_470));
  1496. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1497. /*]*/
  1498. /*IF*/if (((((T436*)C))->_list/*16*/)==((void*)(NULL))) {
  1499. /*[IRF3.4opcode_iconst_m1*/r256opcode(((T256*)_ca),2,1);
  1500. /*]*/
  1501. }
  1502. else {
  1503. r256opcode_push_integer(((T256*)_ca),X96count((((T436*)C))->_list/*16*/));
  1504. }
  1505. /*FI*/r256opcode_putfield(((T256*)_ca),_idx,-(2));
  1506. _idx=r95idx_fieldref4(((T95*)_cp),_idx_rc,((T0*)ms55_473),((T0*)ms162_470));
  1507. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1508. /*]*/
  1509. /*IF*/if (((((T436*)C))->_list/*16*/)==((void*)(NULL))) {
  1510. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)_ca),3,1);
  1511. /*]*/
  1512. }
  1513. else {
  1514. r256opcode_push_integer(((T256*)_ca),X96count((((T436*)C))->_list/*16*/));
  1515. }
  1516. /*FI*/r256opcode_putfield(((T256*)_ca),_idx,-(2));
  1517. _idx=r95idx_fieldref4(((T95*)_cp),_idx_rc,((T0*)ms130_473),r436sd(_elt_type));
  1518. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1519. /*]*/
  1520. /*IF*/if (((((T436*)C))->_list/*16*/)==((void*)(NULL))) {
  1521. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)_ca),1,1);
  1522. /*]*/
  1523. }
  1524. else {
  1525. r256opcode_push_integer(((T256*)_ca),X96count((((T436*)C))->_list/*16*/));
  1526. X291jvm_xnewarray(_elt_type);
  1527. _i=1;
  1528. while (!((_i)>(/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*16*/))))->_upper/*12*/)))) {
  1529. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1530. /*]*/
  1531. r256opcode_push_integer(((T256*)_ca),(_i)-(1));
  1532. _space=X662compile_to_jvm_into(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*16*/)),_i)),_elt_type);
  1533. X291jvm_xastore(_elt_type);
  1534. _i=(_i)+(1);
  1535. }
  1536. }
  1537. /*FI*/r256opcode_putfield(((T256*)_ca),_idx,-(2));
  1538. }
  1539. T0*oBC436tmp_string=NULL;
  1540. /*No:MANIFEST_ARRAY.can_be_dropped*/
  1541. /*No:MANIFEST_ARRAY.current_type*/
  1542. /*No:MANIFEST_ARRAY.us_storage*/
  1543. /*No:MANIFEST_ARRAY.jvm_assign*/
  1544. /*No:MANIFEST_ARRAY.static_value_mem*/
  1545. /*No:MANIFEST_ARRAY.is_manifest_string*/
  1546. /*No:MANIFEST_ARRAY.is_void*/
  1547. void r436compile_to_jvm(T436* C){
  1548. T0* _ca=NULL;
  1549. T0* _cp=NULL;
  1550. int _idx_rc=0;
  1551. T0* _rc=NULL;
  1552. int _space=0;
  1553. int _idx=0;
  1554. int _i=0;
  1555. T0* _elt_type=NULL;
  1556. T0* _rt=NULL;
  1557. _cp=oBC364constant_pool;
  1558. _ca=oBC364code_attribute;
  1559. _rt=(((T709*)((T709*)((((T436*)C))->_result_type/*20*/))))->_run_type/*16*/;
  1560. _rc=X291run_class(_rt);
  1561. _elt_type=X291run_type(r701item(((T701*)(X291generic_list(_rt))),1));
  1562. _idx_rc=r355fully_qualified_constant_pool_index(((T355*)_rc));
  1563. r256opcode_new(((T256*)_ca),_idx_rc);
  1564. _idx=r95idx_fieldref4(((T95*)_cp),_idx_rc,((T0*)ms87_473),((T0*)ms162_470));
  1565. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1566. /*]*/
  1567. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
  1568. /*]*/
  1569. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  1570. _idx=r95idx_fieldref4(((T95*)_cp),_idx_rc,((T0*)ms140_473),((T0*)ms162_470));
  1571. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1572. /*]*/
  1573. /*IF*/if (((((T436*)C))->_list/*16*/)==((void*)(NULL))) {
  1574. /*[IRF3.4opcode_iconst_m1*/r256opcode(((T256*)_ca),2,1);
  1575. /*]*/
  1576. }
  1577. else {
  1578. r256opcode_push_integer(((T256*)_ca),X96count((((T436*)C))->_list/*16*/));
  1579. }
  1580. /*FI*/r256opcode_putfield(((T256*)_ca),_idx,-(2));
  1581. _idx=r95idx_fieldref4(((T95*)_cp),_idx_rc,((T0*)ms55_473),((T0*)ms162_470));
  1582. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1583. /*]*/
  1584. /*IF*/if (((((T436*)C))->_list/*16*/)==((void*)(NULL))) {
  1585. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)_ca),3,1);
  1586. /*]*/
  1587. }
  1588. else {
  1589. r256opcode_push_integer(((T256*)_ca),X96count((((T436*)C))->_list/*16*/));
  1590. }
  1591. /*FI*/r256opcode_putfield(((T256*)_ca),_idx,-(2));
  1592. _idx=r95idx_fieldref4(((T95*)_cp),_idx_rc,((T0*)ms130_473),r436sd(_elt_type));
  1593. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1594. /*]*/
  1595. /*IF*/if (((((T436*)C))->_list/*16*/)==((void*)(NULL))) {
  1596. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)_ca),1,1);
  1597. /*]*/
  1598. }
  1599. else {
  1600. r256opcode_push_integer(((T256*)_ca),X96count((((T436*)C))->_list/*16*/));
  1601. X291jvm_xnewarray(_elt_type);
  1602. _i=1;
  1603. while (!((_i)>(/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*16*/))))->_upper/*12*/)))) {
  1604. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1605. /*]*/
  1606. r256opcode_push_integer(((T256*)_ca),(_i)-(1));
  1607. _space=X662compile_to_jvm_into(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*16*/)),_i)),_elt_type);
  1608. X291jvm_xastore(_elt_type);
  1609. _i=(_i)+(1);
  1610. }
  1611. }
  1612. /*FI*/r256opcode_putfield(((T256*)_ca),_idx,-(2));
  1613. }
  1614. int r436is_pre_computable(T436* C){
  1615. int R=0;
  1616. T0* _e=NULL;
  1617. int _i=0;
  1618. /*IF*/if (((((T436*)C))->_list/*16*/)==((void*)(NULL))) {
  1619. R=1;
  1620. }
  1621.  else if (X291is_string(r701item(((T701*)((((T709*)((T709*)((((T436*)C))->_result_type/*20*/))))->_generic_list/*8*/)),1))) {
  1622. R=1;
  1623. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*16*/))))->_upper/*12*/);
  1624. while (!((!(R))||((_i)==(0)))) {
  1625. _e=/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*16*/)),_i));
  1626. R=X662is_pre_computable(_e);
  1627. _i=(_i)-(1);
  1628. }
  1629. }
  1630. /*FI*/return R;
  1631. }
  1632. int r436use_current(T436* C){
  1633. int R=0;
  1634. int _i=0;
  1635. /*IF*/if (((((T436*)C))->_list/*16*/)!=((void*)(NULL))) {
  1636. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*16*/))))->_upper/*12*/);
  1637. while (!(((_i)==(0))||(R))) {
  1638. R=X662use_current(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*16*/)),_i)));
  1639. _i=(_i)-(1);
  1640. }
  1641. }
  1642. /*FI*/return R;
  1643. }
  1644. void r436error(T0* a1,T0* a2){
  1645. r683add_position(a1);
  1646. r683error(((T683*)(oBC364eh)),a2);
  1647. }
  1648. /*No:MANIFEST_ARRAY.isa_dca_inline_argument*/
  1649. /*No:MANIFEST_ARRAY.us_upper*/
  1650. void r436afd_check(T436* C){
  1651. int _i=0;
  1652. /*IF*/if (((((T436*)C))->_list/*16*/)!=((void*)(NULL))) {
  1653. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*16*/))))->_upper/*12*/);
  1654. while (!((_i)==(0))) {
  1655. X662afd_check(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*16*/)),_i)));
  1656. _i=(_i)-(1);
  1657. }
  1658. }
  1659. /*FI*/}
  1660. void r644get_started(T644* C,T0* a1){
  1661. T0* _rp2=NULL;
  1662. T0* _rp1=NULL;
  1663. int _j=0;
  1664. int _i=0;
  1665. _i=(((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/;
  1666. while (!((_i)==(0))) {
  1667. _rp1=r552item(((T552*)((((T644*)C))->_list/*0*/)),_i);
  1668. /*IF*/if (!(r605has(((T605*)a1),(((T498*)((T498*)_rp1)))->_old_name/*0*/))) {
  1669. r683add_position(X776start_position((((T498*)((T498*)_rp1)))->_old_name/*0*/));
  1670. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_644);
  1671. r683fatal_error(((T683*)(oBC364eh)),b1);
  1672. }/*]*/
  1673. }
  1674. /*FI*/_i=(_i)-(1);
  1675. _j=_i;
  1676. while (!((_j)==(0))) {
  1677. _rp2=r552item(((T552*)((((T644*)C))->_list/*0*/)),_j);
  1678. /*IF*/if ((X776to_key((((T498*)((T498*)_rp2)))->_old_name/*0*/))==((void*)(X776to_key((((T498*)((T498*)_rp1)))->_old_name/*0*/)))) {
  1679. r683add_position(X776start_position((((T498*)((T498*)_rp1)))->_old_name/*0*/));
  1680. r683add_position(X776start_position((((T498*)((T498*)_rp2)))->_old_name/*0*/));
  1681. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_644);
  1682. r683fatal_error(((T683*)(oBC364eh)),b1);
  1683. }/*]*/
  1684. }
  1685. /*FI*/_j=(_j)-(1);
  1686. }
  1687. }
  1688. }
  1689. int r644affect(T644* C,T0* a1){
  1690. int R=0;
  1691. T0* _fn_to_key=NULL;
  1692. T0* _rp=NULL;
  1693. int _i=0;
  1694. _i=(((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/;
  1695. while (!((R)||((_i)==(0)))) {
  1696. _rp=r552item(((T552*)((((T644*)C))->_list/*0*/)),_i);
  1697. _fn_to_key=X776to_key(a1);
  1698. /*IF*/if (((X776to_key((((T498*)((T498*)_rp)))->_new_name/*4*/))==((void*)(_fn_to_key)))||((X776to_key((((T498*)((T498*)_rp)))->_old_name/*0*/))==((void*)(_fn_to_key)))) {
  1699. R=1;
  1700. }
  1701. else {
  1702. _i=(_i)-(1);
  1703. }
  1704. /*FI*/}
  1705. return R;
  1706. }
  1707. /*No:RENAME_LIST.make*/
  1708. T0* r644to_new_name(T644* C,T0* a1){
  1709. T0* R=NULL;
  1710. T0* _fn_to_key=NULL;
  1711. int _i=0;
  1712. _i=1;
  1713. _fn_to_key=X776to_key(a1);
  1714. while (!(((R)!=((void*)(NULL)))||((_i)>((((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/)))) {
  1715. /*IF*/if ((X776to_key((((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_old_name/*0*/))==((void*)(_fn_to_key))) {
  1716. R=(((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_new_name/*4*/;
  1717. }
  1718. /*FI*/_i=(_i)+(1);
  1719. }
  1720. /*IF*/if ((R)==((void*)(NULL))) {
  1721. R=a1;
  1722. }
  1723. /*FI*/return R;
  1724. }
  1725. T0* r644to_old_name(T644* C,T0* a1){
  1726. T0* R=NULL;
  1727. T0* _fn_to_key=NULL;
  1728. int _i=0;
  1729. _i=1;
  1730. _fn_to_key=X776to_key(a1);
  1731. while (!(((R)!=((void*)(NULL)))||((_i)>((((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/)))) {
  1732. /*IF*/if ((X776to_key((((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_new_name/*4*/))==((void*)(_fn_to_key))) {
  1733. R=(((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_old_name/*0*/;
  1734. }
  1735. /*FI*/_i=(_i)+(1);
  1736. }
  1737. /*IF*/if ((R)==((void*)(NULL))) {
  1738. R=a1;
  1739. }
  1740. /*FI*/return R;
  1741. }
  1742. /*No:RENAME_LIST.list*/
  1743. /*No:RENAME_LIST.add_last*/
  1744. /*No:RENAME_LIST.fatal_error*/
  1745. /*No:TYPE_DOUBLE.id*/
  1746. /*No:TYPE_DOUBLE.jvm_target_descriptor_in*/
  1747. int r388jvm_if_x_eq(void){
  1748. int R=0;
  1749. T0* _ca=NULL;
  1750. _ca=oBC364code_attribute;
  1751. /*[IRF3.4opcode_dcmpg*/r256opcode(((T256*)_ca),152,-(3));
  1752. /*]*/
  1753. R=r256opcode_ifeq(((T256*)_ca));
  1754. return R;
  1755. }
  1756. int r388has_creation(T388* C,T0* a1){
  1757. int R=0;
  1758. r683add_position(X776start_position(a1));
  1759. r388error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T388*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  1760. return R;
  1761. }
  1762. /*No:TYPE_DOUBLE.is_anchored*/
  1763. /*No:TYPE_DOUBLE.is_array*/
  1764. int r388is_a(T388* C,T0* a1){
  1765. int R=0;
  1766. /*IF*/if (X291is_double(a1)) {
  1767. R=1;
  1768. }
  1769. else {
  1770. R=r605is_subclass_of(((T605*)(r388base_class(C))),X291base_class(a1));
  1771. /*IF*/if (R) {
  1772. r388used_as_reference();
  1773. }
  1774. /*FI*/}
  1775. /*FI*//*IF*/if (!(R)) {
  1776. r683add_type((T0*)C,((T0*)ms71_470));
  1777. r683add_type(a1,((T0*)ms67_470));
  1778. }
  1779. /*FI*/return R;
  1780. }
  1781. /*No:TYPE_DOUBLE.jvm_to_reference*/
  1782. /*No:TYPE_DOUBLE.run_type*/
  1783. /*No:TYPE_DOUBLE.is_pointer*/
  1784. /*No:TYPE_DOUBLE.us_double_ref*/
  1785. /*No:TYPE_DOUBLE.is_dummy_expanded*/
  1786. int r388jvm_push_default(void){
  1787. int R=0;
  1788. /*[IRF3.4opcode_dconst_0*/r256opcode(((T256*)(oBC364code_attribute)),14,2);
  1789. /*]*/
  1790. R=2;
  1791. return R;
  1792. }
  1793. /*No:TYPE_DOUBLE.is_string*/
  1794. /*No:TYPE_DOUBLE.is_like_feature*/
  1795. /*No:TYPE_DOUBLE.is_like_current*/
  1796. void r388make(T388* C,T0* a1){
  1797. {T451*n=malloc(sizeof(*n));
  1798. *n=M451;
  1799. r451make(n,((T0*)ms11_473),a1);
  1800. C->_base_class_name=(T0*)n;
  1801. }
  1802. }
  1803. /*No:TYPE_DOUBLE.nb_errors*/
  1804. /*No:TYPE_DOUBLE.us_item*/
  1805. void r388load_ref(T0* a1){
  1806. T0* _rf=NULL;
  1807. T0* _rc=NULL;
  1808. T0* _cn=NULL;
  1809. {T451*n=malloc(sizeof(*n));
  1810. *n=M451;
  1811. r451make(n,a1,NULL);
  1812. _cn=(T0*)n;
  1813. }
  1814. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  1815. r355set_at_run_time(((T355*)_rc));
  1816. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
  1817. }
  1818. /*No:TYPE_DOUBLE.jvm_return_code*/
  1819. int fBC388check_type=0;
  1820. void r388check_type(T388* C){
  1821. if (fBC388check_type==0){
  1822. T0* _rc=NULL;
  1823. T0* _bc=NULL;
  1824. fBC388check_type=1;
  1825. _bc=r388base_class(C);
  1826. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1827. _rc=r388run_class(C);
  1828. }
  1829. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1830. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  1831. r388error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T388*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_388));
  1832. }
  1833. /*FI*/}
  1834. /*FI*/}}
  1835. /*No:TYPE_DOUBLE.jvm_xnewarray*/
  1836. /*No:TYPE_DOUBLE.jvm_descriptor_in*/
  1837. /*No:TYPE_DOUBLE.start_position*/
  1838. /*No:TYPE_DOUBLE.fz_inako*/
  1839. /*No:TYPE_DOUBLE.is_user_expanded*/
  1840. /*No:TYPE_DOUBLE.is_character*/
  1841. T0* r388written_mark(void){
  1842. T0* R=NULL;
  1843. R=((T0*)ms11_473);
  1844. return R;
  1845. }
  1846. /*No:TYPE_DOUBLE.is_run_type*/
  1847. T0* r388to_runnable(T388* C,T0* a1){
  1848. T0* R=NULL;
  1849. R=(T0*)C;
  1850. r388check_type(C);
  1851. return R;
  1852. }
  1853. /*No:TYPE_DOUBLE.is_formal_generic*/
  1854. T0* r388generic_list(T388* C){
  1855. T0* R=NULL;
  1856. r388fatal_error_generic_list(C);
  1857. return R;
  1858. }
  1859. /*No:TYPE_DOUBLE.is_real*/
  1860. /*No:TYPE_DOUBLE.is_bit*/
  1861. void r388fatal_error_generic_list(T388* C){
  1862. r683add_type((T0*)C,((T0*)ms12_291));
  1863. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1864. }
  1865. /*No:TYPE_DOUBLE.jvm_check_class_invariant*/
  1866. /*No:TYPE_DOUBLE.jvm_xaload*/
  1867. T0* r388smallest_ancestor(T388* C,T0* a1){
  1868. T0* R=NULL;
  1869. T0* _rto=NULL;
  1870. _rto=X291run_type(a1);
  1871. /*IF*/if (X291is_integer(_rto)) {
  1872. R=(T0*)C;
  1873. }
  1874.  else if (X291is_real(_rto)) {
  1875. R=(T0*)C;
  1876. }
  1877.  else if (X291is_double(_rto)) {
  1878. R=(T0*)C;
  1879. }
  1880. else {
  1881. R=r657smallest_ancestor(((T657*)(r388type_double_ref())),_rto);
  1882. }
  1883. /*FI*/return R;
  1884. }
  1885. /*No:TYPE_DOUBLE.is_boolean*/
  1886. /*No:TYPE_DOUBLE.is_double*/
  1887. int r388jvm_stack_space(void){
  1888. int R=0;
  1889. /*IF*/{/*AT*/R=2;
  1890. }
  1891. /*FI*/return R;
  1892. }
  1893. T0* r388run_class(T388* C){
  1894. T0* R=NULL;
  1895. R=r604run_class((T0*)C);
  1896. return R;
  1897. }
  1898. T0* r388run_time_mark(void){
  1899. T0* R=NULL;
  1900. R=((T0*)ms11_473);
  1901. return R;
  1902. }
  1903.  
  1904.